from dataclasses import dataclass
@dataclass
class Account:
    __balance:float

    def __init__(self,balance:float):
        if not isinstance(balance,float):
            raise ValueError('账户余额必须是浮点数')
        self.__balance=balance;
    @property
    def balance(self):
        return self.__balance
    @balance.setter
    def balance(self,value):
        if not isinstance(value,float):
            raise ValueError('账户余额必须是浮点数')
        if value<0:
            raise ValueError('账户余额必须是负数')
        self.__balance=value
account=Account(100.0)
account.balance +=50
print(f'账户余额={account.balance}')
account=Account(100.0)
print(f'账户余额={account.balance}')

'''在一个类中定义了自己的__init__方法时，@dataclass装饰器不会自动生成__init__方法，
而是调用自己定义的方法。实现类型检查，我们可以在自己定义的__init__方法中添加类型检查的逻辑。
可以使用isinstance()函数来检查传入的参数是否是所期望的类型。
如果参数类型不符合要求，可以抛出异常或者进行其他处理。'''